<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>qspipsu: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">qspipsu
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">qspipsu Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>This is the header file for the implementation of QSPIPSU driver.Generic QSPI interface allows for communication to any QSPI slave device. GQSPI contains a GENFIFO into which the bus transfers required are to be pushed with appropriate configuration. The controller provides TX and RX FIFO's and a DMA to be used for RX transfers. The controller executes each GENFIFO entry noting the configuration and places data on the bus as required</p>
<p>The different options in GENFIFO are as follows: IMM_DATA : Can be one byte of data to be transmitted, number of clocks or number of bytes in transfer. DATA_XFER : Indicates that data/clocks need to be transmitted or received. EXPONENT : e when 2^e bytes are involved in transfer. SPI_MODE : SPI/Dual SPI/Quad SPI CS : Lower or Upper CS or Both Bus : Lower or Upper Bus or Both TX : When selected, controller transmits data in IMM or fetches number of bytes mentioned form TX FIFO. If not selected, dummies are pumped. RX : When selected, controller receives and fills the RX FIFO/allows RX DMA of requested number of bytes. If not selected, RX data is discarded. Stripe : Byte stripe over lower and upper bus or not. Poll : Polls response to match for to a set value (used along with POLL_CFG registers) and then proceeds to next GENFIFO entry. This feature is not currently used in the driver.</p>
<p>GENFIFO has manual and auto start options. All DMA requests need a 4-byte aligned destination address buffer and size of transfer should also be a multiple of 4. This driver supports DMA RX and IO RX.</p>
<p>Initialization: This driver uses the GQSPI controller with RX DMA. It supports both interrupt and polled transfers. Manual start of GENFIFO is used. <a class="el" href="group__qspipsu__v1__0.html#ga78067f00df477a415138cf035d5c3c1c" title="Initializes a specific XQspiPsu instance such that the driver is ready to use. ">XQspiPsu_CfgInitialize()</a> initializes the instance variables. Additional setting can be done using SetOptions/ClearOptions functions and SelectSlave function.</p>
<p>Transfer: Polled or Interrupt transfers can be done. The transfer function needs the message(s) to be transmitted in the form of an array of type <a class="el" href="struct_x_qspi_psu___msg.html" title="This typedef contains configuration information for a flash message. ">XQspiPsu_Msg</a>. This is supposed to contain the byte count and any TX/RX buffers as required. Flags can be used indicate further information such as whether the message should be striped. The transfer functions form and write GENFIFO entries, check the status of the transfer and report back to the application when done.</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who Date     Changes
--&mdash; &mdash; -----&mdash; --------------------------------------------&mdash;.
1.0   hk  08/21/14 First release
      sk  03/13/15 Added IO mode support.
      hk  03/18/15 Switch to I/O mode before clearing RX FIFO.
                   Clear and disbale DMA interrupts/status in abort.
                   Use DMA DONE bit instead of BUSY as recommended.
      sk  04/24/15 Modified the code according to MISRAC-2012.
      sk  06/17/15 Removed NULL checks for Rx/Tx buffers. As
                   writing/reading from 0x0 location is permitted.
1.1   sk  04/12/16 Added debug message prints.
1.2     nsk 07/01/16 Added LQSPI support
             Modified XQspiPsu_Select() macro in <a class="el" href="xqspipsu_8h.html">xqspipsu.h</a>
             Added XQspiPsu_GetLqspiConfigReg() in <a class="el" href="xqspipsu_8h.html">xqspipsu.h</a>
             Added required macros in <a class="el" href="xqspipsu__hw_8h.html">xqspipsu_hw.h</a>
             Modified <a class="el" href="group__qspipsu__v1__0.html#gad0fea713a1ec2a4ce6159439e30f7cd7" title="This function sets the options for the QSPIPSU device driver.The options control how the device behav...">XQspiPsu_SetOptions()</a> to support
             LQSPI options and updated OptionsTable in
             <a class="el" href="xqspipsu__options_8c.html">xqspipsu_options.c</a>
      rk  07/15/16 Added support for TapDelays at different frequencies.
      nsk 08/05/16 Added example support PollData and PollTimeout
             Added  XQSPIPSU_MSG_FLAG_POLL macro in <a class="el" href="xqspipsu_8h.html">xqspipsu.h</a>
             Added XQspiPsu_Create_PollConfigData and
             XQspiPsu_PollData() functions in <a class="el" href="xqspipsu_8c.html">xqspipsu.c</a>
1.3     nsk 09/16/16 Update PollData and Polltimeout support for dual parallel
                   configuration. Updated XQspiPsu_PollData() and
                   XQspiPsu_Create_PollConfigData() functions in <a class="el" href="xqspipsu_8c.html">xqspipsu.c</a>
                   and also modified the polldata example
      ms  03/17/17 Added readme.txt file in examples folder for doxygen
                   generation.</pre><pre></pre> </div></div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
